<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/9/26
 * Time: 11:20
 */

namespace app\zucai\home;

use app\index\controller\Home;
use think\Db;
class Ceshi extends Home
{

    //生成订单
    public function index(){
        if ($this->request->isPost()) {
            if($this->request->post()){  //传值为cid
                $post=$this->request->post();

                    if (!$post['choice']) return returnError('无投注注单！');

					 $ti=explode(',',$post['choice']);
                    foreach ($ti as $k=>$v){
                        $tit=explode('=>',$v);
                        $con = Db::name('play')->field('firsttime,team,team2')->where('id',$tit[0])->find();
                        $time=strtotime($con['firsttime']);

                        if( date('w',$time)==0 || date('w',$time)==1){  //比赛日期在周六日时
                            if (date('G', $time) >= 1 && date('G', $time) < 10) { //比赛在凌晨1点-10点时
                                if ((date('d', $time) - date('d')) == 1) {  //今天买明天的票
                                    if (time() > ($time - 30 * 60)) {           //11点50买明天0点10分的票时
                                        return returnError($con['team'] . '-' . $con['team2'] . '的比赛已截止！');
                                    }
                                } elseif ((date('d', $time) - date('d')) == 0) {
                                    if ( date('G')==0 && date('i')<=30 ) {
                                        if (time() > ($time - 30 * 60)) {           //11点50买明天0点10分的票时
                                            return returnError($con['team'] . '-' . $con['team2'] . '的比赛已截止！');
                                        }
                                    }else{
                                            return returnError('当前时间禁止投注！');
                                    }
                                }
                            } else {
                                if (time() > ($time - 30 * 60)) {           //比赛在9点后的票时
                                    return returnError($con['team'] . '-' . $con['team2'] . '的比赛已截止！');
                                }
                            }
                        }else{
                            if (date('G', $time) >= 0 && date('G', $time) < 10) { //比赛在凌晨0点-10点时
                                if ((date('d', $time) - date('d')) == 1) {  //今天买明天的票
                                    if (time() > ($time - 30 * 60)) {           //11点50买明天0点10分的票时
                                        return returnError($con['team'] . '-' . $con['team2'] . '的比赛已截止！');
                                    }
									 if ( date('G')==23 && date('i')>30 ) {
										 return returnError('当前时间禁止投注！');
									 }
                                } elseif ((date('d', $time) - date('d')) == 0) {
                                        return returnError('当前时间禁止投注！');
                                }
                            } else {
                                if (time() > ($time - 30 * 60)) {           //比赛在9点后的票时
                                    return returnError($con['team'] . '-' . $con['team2'] . '的比赛已截止！');
                                }
                            }
                        }

                    }

                    if (!$post['choicetype']) return returnError('未选择投注类型！');
					
                   if (!isset($post['content'])){
					   $content='';
					   }else{
					   $content=$post['content'];
				   }
				   if (!isset($post['pub'])){
					   $pub=0;
					   }else{
					   $pub=$post['pub'];
				   }
                    if (!$post['uid']) return returnError('未获取到用户id！');

                    if ($post['itemcount']<20) return returnError('最低投注金额为20元！');
                    if (!$post['beishu']) return returnError('未获取到倍数！');

                   if ($post['type']==1){
                
                       if (!$post['pid']) return returnError('未确定跟单用户id！');
                       if (!$post['order_id']) return returnError('未确定跟单单号！');
                   }else{
					    if ($post['gendan']==1){
							if (!$post['lowpei']) return returnError('未确定保密赔率！');
						}
				   }
				
                $trano = date('Ymd') . str_pad(mt_rand(1, 9999), 5, '0', STR_PAD_LEFT).$post['uid'];
                $con = Db::name('user')
                    ->field('id,user,name,money,tx_money,blockmoney,status')
                    ->where('id', $post['uid'])
                    ->find();
                   if($con['status']==0) return returnError('该用户已被禁用，请联系管理员！');
                   if($post['type']==0){
                       $arr=[
                           'uid'=>$post['uid'],
                           'username'=>$con['name'],
                           'trano'=>$trano,
                           'choicetype'=>trimall($post['choicetype']),
                           'choice'=>$post['choice'],
                           'itemcount'=>$post['itemcount'],
                           'beishu'=>$post['beishu'],
                           'type'=>$post['type'],
                           'gendan'=>$post['gendan'],
                           'oddtime'=>date('Y-m-d H:i:s'),
						   'lowpei'=>$post['lowpei'],
						   'content'=>$content,
						   'pub'=>$pub,
                       ];
                   }else{
					   $c=Db::name('order')->field('lowpei')->where('uid',$post['pid'])->where('trano',$post['order_id'])->find();
					 
                       $arr=[
                           'pid'=>$post['pid'],
                           'order_id'=>$post['order_id'],
                           'uid'=>$post['uid'],
                           'username'=>$con['name'],
                           'trano'=>$trano,
                           'choicetype'=>trimall($post['choicetype']),
                           'choice'=>$post['choice'],
                           'itemcount'=>$post['itemcount'],
                           'beishu'=>$post['beishu'],
                           'type'=>$post['type'],
                           'oddtime'=>date('Y-m-d H:i:s'),
                            'lowpei'=>$c['lowpei'],
							 'content'=>$content,
							 'pub'=>$pub,
                       ];
                   }
				
                   if($post['itemcount']>$con['money']){
                       $arr['isdraw']=4;
                       $date=Db::name('order')->insert($arr);
                       if($date){
                           return returnError('余额不足');
                       }
                   }else{
					 
                       Db::startTrans();
                       try {
                           Db::name('order')->insert($arr);
						   
                           if(($con['money']-$post['itemcount'])>$con['tx_money']){
                               Db::name('user')->where('id', $post['uid'])->setDec('money',$post['itemcount']);
                           }else{
                               $cond=[
                                   'tx_money'=>$con['money']-$post['itemcount'],
                               ];
                               Db::name('user')->where('id', $post['uid'])->setDec('money',$post['itemcount']);
                               Db::name('user')->where('id', $post['uid'])->update($cond);
                           }
						  
                           $array = 
						   [
                               'order_id' =>$trano,
                               'uid' => $post['uid'],
                               'type' => 1,
                               'caizhong'=>'足彩',
                               'caicontent'=>'订单确认扣款',
                               'username' => $con['user'],
                               'name' => $con['name'],
                               'money' => $con['money'],
                               'lastmoney' =>$con['money']-$post['itemcount'],
                               'dmoney' => $con['blockmoney'],
                               'time' => date('Y-m-d H:i:s'),
                           ];
                           Db::name('account')->insert($array);

                           Db::commit();  // 提交事务
                           return returnOk('订单提交成功.');
                       }catch (\Exception $e) {
                           Db::rollback();   // 回滚事务
                           return returnError('订单提交未成功！');
                       }
                   }
            }else{
                return returnError('POST传值错误!');
            }
        }else{
            return returnError('请使用POST方式请求');
        }
    }
}